home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 6
/
Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso
/
015a
/
fdate61a.zip
/
FDATEX.BAT
< prev
next >
Wrap
DOS Batch File
|
1992-02-15
|
24KB
|
693 lines
@ECHO off
BREAK ON
if not (%1)==() goto %1
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ FDATEX: Demonstration batch file for FDATE ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
echo.
echo.
echo This batch file uses ANSI.SYS to control the appearance and color
echo of some of the headings.
echo.
echo If you do not have ANSI.SYS installed, you may see garbage on the
echo screen next to some of the headings, such as the one at the top of
echo this screen, but the batch file will work correctly otherwise.
echo.
echo.
echo.
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ The first thing we will do is to test the HELP screen. ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
PAUSE
cls
FDATE
PAUSE
ECHO ON
@echo off
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (#1) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /Atoday /Occyy
FDATE /Ff /At /Occyymm
FDATE /Ff /At /Occyymmdd
FDATE /Ff /At /Oyymmdd
FDATE /Ff /At /Ommdd
@echo off
@PAUSE
@echo off
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (#1b) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /At /Odd
FDATE /Ff /At /Ozd
FDATE /Ff /At /Odd-mn3-yy
FDATE /Ff /At /Odd-mn3-yy /Lfr
@echo off
@PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (#2) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /Omm-dd-ccyy
FDATE /Ff /Ozm-zd-ccyy
FDATE /Ff /Omm/dd/ccyy
FDATE /Ff /Ozm/zd/ccyy
@echo off
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (BRITISH) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /Odd.mm.ccyy
FDATE /Ff /Ozd.zm.ccyy
FDATE /Ff /Odd.mm.yy
FDATE /Ff /Ozd.zm.yy
@echo off
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (#3) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /At /Odow#
FDATE /Ff /At /Odow
FDATE /Ff /At /Odow3
FDATE /Ff /At /Odow /Lfr
FDATE /Ff /At /Odow3 /Lfr
@echo off
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (#4) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /At /O"mn zd, ccyy"
FDATE /Ff /At /O"mn3 dd ccyy"
FDATE /Ff /At /O"mn3 dd, ccyy"
FDATE /Ff /At /O"mn zd, ccyy" /Lfr
FDATE /Ff /At /O"mn3 dd ccyy" /Lfr
FDATE /Ff /At /O"mn3 dd, ccyy" /Lfr
@echo off
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (#5) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /At /O"zd mn ccyy"
FDATE /Ff /At /O"zd mn, ccyy"
FDATE /Ff /At /O"zd mn ccyy" /Lfr
FDATE /Ff /At /O"zd mn, ccyy" /Lfr
@echo off
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (TIME) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /At /Ot1
FDATE /Ff /At /Ohh:mm
FDATE /Ff /At /Ohh:mm:ss
@echo off
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS (DATE ABBREVIATIONS) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /At /Od1
FDATE /Ff /At /Ofull
FDATE /Ff /At /Od1 /Lfr
FDATE /Ff /At /Ofull /Lfr
FDATE /Ff /Oly /P"Leap-year flag is: " /S" [0=normal, 1=leapyear]"
@echo off
PAUSE
:julian
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST OUTPUT FORMATS ("JULIAN" OUTPUTS) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
FDATE /Ff /At /Oday# /P"Absolute date : "
FDATE /Ff /At /Ominute# /P"Julian minutes: "
FDATE /Ff /At /Osecond# /P"Julian seconds: "
@pause
@cls
FDATE /Ff /At /Ojulian /P"Julian date is: "
FDATE /Ff /At /OJJJ /P"Julian date is: "
FDATE /Ff /At /OYYJJJ /P"Julian date is: "
FDATE /Ff /At /OCCYYJJJ /P"Julian date is: "
@echo off
PAUSE
:IN
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST INPUT FORMATS ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
echo.
@echo TEST PSEUDO-DATES /AT (/ATODAY)
@echo ─────────────────────────────────────────────────────────────────
@echo on
FDATE /Ff /Atoday
FDATE /Ff /At
@Pause
cls
@ECHO TEST PSEUDO-DATES /ICCYYMMDD
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /Atttt1126 /Iccyymmdd
FDATE /Ff /A1991tt26 /Iccyymmdd
FDATE /Ff /A199211tt /Iccyymmdd
FDATE /Ff /Atttttttt /Iccyymmdd
@Pause
cls
@ECHO TEST PSEUDO-DATES /IMM-DD-CCYY
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /A11-26-tttt /Imm-dd-ccyy
FDATE /Ff /A11-tt-1992 /Imm-dd-ccyy
FDATE /Ff /Att-26-1992 /Imm-dd-ccyy
FDATE /Ff /Att-tt-tttt /Imm-dd-ccyy
@Pause
cls
@ECHO TEST PSEUDO-DATES /IMM-DD-YY
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /A11-26-tt /Imm-dd-yy
FDATE /Ff /A11-tt-92 /Imm-dd-yy
FDATE /Ff /Att-26-92 /Imm-dd-yy
FDATE /Ff /Att-tt-tt /Imm-dd-yy
@PAUSE
CLS
@echo TEST INPUT FORMATS
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /Imm-dd-ccyy /A12-07-1991
FDATE /Ff /Imm-dd-yy /A12-07-91
FDATE /Ff /Iccyymmdd /A19911207
@PAUSE
:JJJ
CLS
@echo ON
@echo TEST JULIAN INPUT FORMATS
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /Iccyyjjj /A1992045
FDATE /Ff /Iccyyjjj /Atttt045
FDATE /Ff /Iyyjjj /A92045
FDATE /Ff /Iyyjjj /Att045
FDATE /Ff /Iyyjjj /A92366
FDATE /Ff /Iyyjjj /A93366
@PAUSE
CLS
@echo TEST JULIAN INPUT FORMATS
@echo ─────────────────────────────────────────────────────────────────
Fdate /Ff /Iyyjjj /Att-1
Fdate /Ff /Iyyjjj /Att0
Fdate /Ff /Iyyjjj /Att+1
Fdate /Ff /Iyyjjj /Att-999
Fdate /Ff /Iyyjjj /Att1000
@PAUSE
@echo OFF
CLS
@echo TEST INPUT FORMATS (only YY specified, CC assumed.)
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /Imm-dd-yy /A12-07-00
FDATE /Ff /Imm-dd-yy /A12-07-10
FDATE /Ff /Imm-dd-yy /A12-07-19
FDATE /Ff /Imm-dd-yy /A12-07-20
FDATE /Ff /Imm-dd-yy /A12-07-21
FDATE /Ff /Imm-dd-yy /A12-07-91
@PAUSE
CLS
@echo off
@echo TEST INPUT FORMATS HANDLING LEADING ZEROS
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /Imm-dd-yy /A06-06-66
FDATE /Ff /Imm-dd-yy /A6-06-66
FDATE /Ff /Imm-dd-yy /A06-6-66
FDATE /Ff /Imm-dd-yy /A6-6-66
FDATE /Ff /Imm-dd-ccyy /A06-06-0001
FDATE /Ff /Imm-dd-ccyy /A6-06-0001
FDATE /Ff /Imm-dd-ccyy /A06-6-0001
FDATE /Ff /Imm-dd-ccyy /A6-6-0001
@PAUSE
@echo on
CLS
@echo TEST /P (PREFIX) PARAMETER
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /At /O"mn zd, ccyy" /P"Today is "
FDATE /Ff /At /O"mn zd, ccyy" /P"Aujourdui est " /Lfr
@echo.
set FDATE=
FDATE /Ff /At /O"mn zd, ccyy" /P"@SET FDATE=" >FDATJUNK.BAT
call FDATJUNK.BAT
@Echo off
del FDATJUNK.BAT
ECHO Value of FDATE environment variable is: %FDATE%
set FDATE=
PAUSE
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST END-OF-MONTH DATES (BUG FIXED IN FDATE 3.0) ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo off
fdate /Ff /Imm-dd-ccyy /A01-29-1992
fdate /Ff /Imm-dd-ccyy /A01-30-1992
fdate /Ff /Imm-dd-ccyy /A01-31-1992
fdate /Ff /Imm-dd-ccyy /A02-29-1992
fdate /Ff /Imm-dd-ccyy /A02-30-1992
fdate /Ff /Imm-dd-ccyy /A02-31-1992
@echo off
PAUSE
:func
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST FUNCTIONS ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo on
@echo.
@echo TEST FUNCTION: F (FORMAT)
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fformat /Atoday
FDATE /Ff /At
FDATE /Ff
@PAUSE
@echo off
CLS
@echo TEST FUNCTION: W (Nth WEEKDAY BEFORE/AFTER) WHERE /D NOT = DOW#
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fw /A11-25-1992 /D5 /N-2 /P"2nd Thursday before 11-25-1992: "
FDATE /Fw /A11-25-1992 /D5 /N-1 /P"1st Thursday before 11-25-1992: "
FDATE /Ff /A11-25-1992 /D5 /N-1 /P"The actual day of.. 11-25-1992: "
FDATE /Fw /A11-25-1992 /D5 /N1 /P"1st Thursday after 11-25-1992: "
FDATE /Fw /A11-25-1992 /D5 /N2 /P"2nd Thursday after 11-25-1992: "
@PAUSE
@CLS
@echo TEST FUNCTION: W (Nth WEEKDAY BEFORE/AFTER) WHERE /D = DOW#
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fw /A11-26-1992 /D5 /N-2 /P"2nd Thursday before 11-26-1992: "
FDATE /Fw /A11-26-1992 /D5 /N-1 /P"1st Thursday before 11-26-1992: "
FDATE /Ff /A11-26-1992 /D5 /N-1 /P"The actual day of.. 11-26-1992: "
FDATE /Fw /A11-26-1992 /D5 /N1 /P"1st Thursday after 11-26-1992: "
FDATE /Fw /A11-26-1992 /D5 /N2 /P"2nd Thursday after 11-26-1992: "
@PAUSE
@echo off
@CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST /FW-RELATED ERROR MESSAGES ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
FDATE /Fw /A11-26-1992 /D5 /N0 /P" 0th Thursday after 11-26-1992: "
FDATE /Fw /A11-26-1992 /D5 /N100 /P"99th Thursday after 11-26-1992: "
FDATE /Fw /A11-26-1992 /D5 /N-100 /P"99th Thursday before 11-26-1992: "
@PAUSE
CLS
@echo TEST COMP (DATE COMPARE) FUNCTION and /Imm-dd-ccyy default
@echo ─────────────────────────────────────────────────────────────────
@echo ON
Fdate /Fcomp /A06-06-1992 /B06-06-1991
Fdate /Fcomp /A06-06-1992 /B06-06-1992
Fdate /Fcomp /A06-06-1992 /B06-06-1993
Fdate /Fcomp
@PAUSE
CLS
@echo TEST DIF (DATE DIFFERENCE, IN DAYS) FUNCTION
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fdif /At /Bt
FDATE /Fdif
FDATE /Fdif /At /B01-01-1990 /Imm-dd-ccyy
FDATE /Fdif /A01-01-1990 /Bt /Imm-dd-ccyy
FDATE /Fdif /A12-31-0008 /B01-01-0009 /Imm-dd-ccyy
FDATE /Fdif /Iccyymmdd /A19801230 /B19801231
FDATE /Fdif /Iccyymmdd /A19801230 /B19801220
@PAUSE
CLS
@echo TEST DIF (DATE DIFFERENCE, IN DAYS) FUNCTION
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fdif /Iccyymmdd /A19800101 /B19801231
FDATE /Fdif /Iccyymmdd /A19810101 /B19811231
FDATE /Fdif /Iccyymmdd /A20000101 /B20001231
FDATE /Fdif /Iccyymmdd /A19000101 /B19001231
FDATE /Fdif /Iccyymmdd /A16000101 /B16001231
@PAUSE
@echo off
CLS
echo TEST ADD (ADD A NUMBER TO A DATE, GET RESULTING DATE) FUNCTION
echo ───────────────────────────────────────────────────────────────────────────────
echo on
FDATE /Fadd /N1 /A12-31-0008 /Imm-dd-ccyy /Omm-dd-ccyy
FDATE /Fadd /N1 /At /Od1 /P"Tomorrow will be "
FDATE /Fadd /N90 /At /Od1 /P"90 days from today is "
@PAUSE
CLS
@echo TEST ADD ACROSS YEAR BOUNDARIES: LEAP YEAR BEGIN
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fadd /N1 /A12-31-0003
FDATE /Fadd /N1 /A12-31-0099
FDATE /Fadd /N1 /A12-31-0399
FDATE /Fadd /N1 /A12-31-1899
FDATE /Fadd /N1 /A12-31-1999
@PAUSE
CLS
@echo TEST ADD ACROSS YEAR BOUNDARIES: LEAP YEAR END
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fadd /N1 /A12-31-0004
FDATE /Fadd /N1 /A12-31-0100
FDATE /Fadd /N1 /A12-31-0400
FDATE /Fadd /N1 /A12-31-1900
FDATE /Fadd /N1 /A12-31-2000
@PAUSE
CLS
@echo TEST SUB
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fsub /N1 /A12-31-0008
FDATE /Fsub /N1 /At /Od1 /P"Yesterday was "
FDATE /Fsub /N90 /At /Od1 /P"90 days ago, the date was "
@PAUSE
CLS
@echo TEST SUB ACROSS YEAR BOUNDARIES: 1 DAY BEFORE LEAP YEAR BEGIN
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fsub /N1 /A12-31-0004
FDATE /Fsub /N1 /A12-31-0100
FDATE /Fsub /N1 /A12-31-0400
FDATE /Fsub /N1 /A12-31-1900
FDATE /Fsub /N1 /A12-31-2000
@PAUSE
CLS
@echo TEST SUB ACROSS YEAR BOUNDARIES: LEAP YEAR BEGIN
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fsub /N1 /A01-01-0004
FDATE /Fsub /N1 /A01-01-0100
FDATE /Fsub /N1 /A01-01-0400
FDATE /Fsub /N1 /A01-01-1900
FDATE /Fsub /N1 /A01-01-2000
@PAUSE
CLS
@echo TEST SUB ACROSS YEAR BOUNDARIES: 1 DAY AFTER LEAP YEAR END
@echo ─────────────────────────────────────────────────────────────────
FDATE /Fsub /N1 /A01-01-0005
FDATE /Fsub /N1 /A01-01-0101
FDATE /Fsub /N1 /A01-01-0401
FDATE /Fsub /N1 /A01-01-1901
FDATE /Fsub /N1 /A01-01-2001
@PAUSE
:errmsg
CLS
@echo TEST ERROR MESSAGES
@echo ─────────────────────────────────────────────────────────────────
@echo on
FDATE /Ff /At /Ojunktest
FDATE /Ff /A18880101 /Ijunktest /Ominute#
@PAUSE
CLS
FDATE /Ff /Iccyymmdd /A18880101 /Ominute#
FDATE /Ff /Iccyymmdd /A21010101 /Osecond#
FDATE /Fsub /Iccyymmdd /A00010101 /n1 /od1
FDATE /Fadd /Iccyymmdd /A99991231 /n1 /od1
@PAUSE
CLS
FDATE /Ff /Imm-dd-ccyy /A01-01-xxxx
FDATE /Fadd /Imm-dd-ccyy /A01-01-1992 /N
@PAUSE
CLS
FDATE /Fdif /?01-01-1992 /B01-02-1992
FDATE /Fdif /A01-01-1992 /?01-02-1992
@PAUSE
CLS
FDATE /Ff /Imm-dd-yy /A01-01-1
FDATE /Ff /Imm-dd-yy /A01-01-199
FDATE /Ff /Imm-dd-ccyy /A01-01-199
FDATE /Ff /Imm-dd-ccyy /A01-01-19922
@PAUSE
:LY
CLS
@echo on
@echo TEST LEAPYR (#1)
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /A01-01-0001 /Oly
FDATE /Ff /A01-01-0004 /Oly
FDATE /Ff /A01-01-0005 /Oly
FDATE /Ff /A01-01-0100 /Oly
FDATE /Ff /A01-01-0400 /Oly
FDATE /Ff /A01-01-1600 /Oly
@PAUSE
CLS
@echo TEST LEAPYR (#2)
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /A01-01-1900 /Oly
FDATE /Ff /A01-01-1984 /Oly
FDATE /Ff /A01-01-1991 /Oly
FDATE /Ff /A01-01-1992 /Oly
FDATE /Ff /A01-01-2000 /Oly
@PAUSE
CLS
@echo TEST "JULIAN" OUTPUT FORMATS
@echo ─────────────────────────────────────────────────────────────────
FDATE /Ff /At /Ojulian
FDATE /Ff /At /Oday#
FDATE /Ff /At /Ominute#
FDATE /Ff /At /Osecond#
FDATE /Ff /A19950101 /Iccyymmdd /Ominute#
FDATE /Ff /A19950101 /Iccyymmdd /Osecond#
@PAUSE
@ECHO off
:ABSDATES
CLS
echo SHOW ABSOLUTE OR "TRUE JULIAN" DATES FOR SELECTED DATES
echo ─────────────────────────────────────────────────────────────────
ECHO.
FDATE /Ff /A01-01-0001 /P"First day of year 0001: " /Oday#
ECHO.
FDATE /Ff /A01-01-1900 /P"First day of year 1900: " /Oday#
ECHO.
FDATE /Ff /A01-01-1992 /P"First day of year 1992: " /Oday#
ECHO.
FDATE /Ff /At /P"Today's calendar date : "
FDATE /Ff /At /Oday# /P"Today's absolute date : "
ECHO.
FDATE /Ff /A12-31-2000 /P"Last day of year 2000: " /Oday#
ECHO.
FDATE /Ff /A12-31-9999 /P"Last day of year 9999: " /Oday#
PAUSE
:GET
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST FDATE WITH ENVIRONMENT MANIPULATION PROGRAM: GET ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ If you do not have GET installed, ║
echo
║ you will see messages saying "Bad command of file name". ║
echo
║ This is normal and nothing to worry about. ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo.
@echo on
@set date1=
@echo.
FDATE /Ff /At /Oyymmdd|GET ZE /Vdate1 >NUL
@echo DATE1 environment variable is %DATE1%
@set date1=
@echo.
FDATE /Ff /At /Occyymmdd|GET ZE /Vdate1 >NUL
@echo DATE1 environment variable is %DATE1%
@set date1=
@echo off
@PAUSE
:STRINGS
CLS
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ TEST FDATE WITH ENVIRONMENT MANIPULATION PROGRAM: STRINGS ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ If you do not have STRINGS installed, ║
echo
║ you will see messages saying "Bad command of file name". ║
echo
║ This is normal and nothing to worry about. ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
@echo.
@echo on
@set date1=
@echo.
FDATE /Ff /At /Oyymmdd | STRINGS date1= ASK >NUL
@echo DATE1 environment variable is %DATE1%
@set date1=
@echo.
FDATE /Ff /At /Occyymmdd | STRINGS date1= ASK >NUL
@echo DATE1 environment variable is %DATE1%
@set date1=
@echo.
@echo off
@PAUSE
@echo off
CLS
echo.
echo The final demonstration uses the DOS "CALL" statement,
echo so it requires DOS 3.3 or greater.
echo.
echo If you do not have DOS 3.3+,
echo press Control-Break or Control-C now to stop execution of the batch file.
echo.
echo Otherwise,
pause
:TIMER
@echo off
cls
ECHO The demo will run for 1 - 60 seconds.
echo.
ECHO ────────────────────────────────────────────────────────────────────────
ECHO CALCULATE HOW LONG IT TOOK TO RUN A PROGRAM (in seconds and minutes)
echo.
echo If you leave long batch files to run overnight, this techique can
echo be used to record how long each program in the batch file ran.
echo.
echo The technique for setting the values of environment variables in this
echo part of the demo uses temporary batch files and CALL statements.
echo If you have a program such as GET or STRINGS, you can use it instead.
ECHO ────────────────────────────────────────────────────────────────────────
echo.
PAUSE
cls
FDATE /Ff /At /Ohh:mm:ss /P"TESTPGM simulated execution begins at "
REM GET PROGRAM BEGIN TIME, IN MINUTES
@set BegM=
@set EndM=
@set RunM=
FDATE /Ff /At /Ominute# /P"SET BegM=" >FDATJUNK.BAT
CALL FDATJUNK.BAT
REM GET PROGRAM BEGIN TIME, IN SECONDS
set BegS=
set EndS=
set RunS=
FDATE /Ff /At /Osecond# /P"SET BegS=" >FDATJUNK.BAT
CALL FDATJUNK.BAT
rem ───────────────────────────────────────────────────────────────
rem [simulate execution of a program: loop for a minute or less]
rem [In a real batch file, you would put your program statements here]
rem ───────────────────────────────────────────────────────────────
:BegLoop
FDATE /Ff /At /Osecond# /VendS
FDATE /Ff /At /Ominute# /VendM
rem calculate run time (difference between start time and end time)
rem ----------------------------------------------------------------
FDATE /F#dif /A%EndM% /B%BegM% /VrunM
rem calculate run time (difference between start time and end time)
rem ----------------------------------------------------------------
FDATE /F#dif /A%EndS% /B%BegS% /VrunS
echo TESTPGM running, elapsed time: %RunS% seconds
if (%RunM%)==() goto EndLoop
if (%RunM%)==(0) goto BegLoop
:EndLoop
rem ───────────────────────────────────────────────────────────────
REM GET PROGRAM END TIME IN SECONDS
FDATE /Ff /At /Osecond# /VendS
REM GET PROGRAM END TIME IN MINUTES
FDATE /Ff /At /Ominute# /VendM
FDATE /Ff /At /Ohh:mm:ss /P"TESTPGM simulated execution ends at "
echo.
echo TESTPGM: Program end time (Julian seconds): %EndS%
echo TESTPGM: Program begin time (Julian seconds): %BegS%
rem calculate run time (difference between start time and end time)
rem ----------------------------------------------------------------
FDATE /F#dif /A%EndS% /B%BegS% /P"TESTPGM: Run time in seconds= "
set BegS=
set EndS=
echo.
echo TESTPGM: Program end time (Julian minutes): %EndM%
echo TESTPGM: Program begin time (Julian minutes): %BegM%
rem calculate run time (difference between start time and end time)
FDATE /F#dif /A%EndM% /B%BegM% /P"TESTPGM: Run time in minutes= "
set BegM=
set EndM=
set RunM=
set RunS=
echo.
PAUSE
@echo off
if exist FDATJUNK.BAT DEL FDATJUNK.BAT
cls
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ END OF FDATE TEST BATCH FILE ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
echo.
echo I hope that you have found this demo batch file helpful,
echo and that you will find FDATE useful.
echo.
echo -- Stephen Ferg
echo.
echo.
echo.
if not exist holidays.bat goto endit
echo
╔═════════════════════════════════════════════════════════════════════════════╗
echo
║ READY TO EXECUTE HOLIDAYS.BAT ... DEMO BATCH FILE ║
echo
╚═════════════════════════════════════════════════════════════════════════════╝
pause
HOLIDAYS.BAT
:ENDIT